import aa = module("main/org/sdmx/model/v2/reporting/dataset/AttachableArtefact");
import dfd = module("main/org/sdmx/model/v2/structure/keyfamily/DataflowDefinition");
//import org.sdmx.model.v2.structure.keyfamily.DataflowDefinition;
	
/**
	* Contract to be implemented by DataSets
	*  
	* @author Xavier Sosnovsky, Anthony Morel
	* @author Karine Feraboli
	*/ 
export interface IDataSet extends aa.AttachableArtefact
{
	/**
		* @private
		*/ 
	setReportingBeginDate(beginDate:Date);
		
	/**
		* A specific time period that identifies the beginning period of a 
		* report.
		*/ 
	getReportingBeginDate():Date;
		
	/**
		* @private
		*/
	setReportingEndDate(endDate:Date);
		
	/**
		* A specific time period that identifies the end period of a 
		* report.
		*/ 
	getReportingEndDate():Date;
		
	/**
		* @private
		*/
	setDataExtractionDate(extractionDate:Date);
		
	/**
		* A specific time period that identifies the date and time that the 
		* data are extracted from a data source.
		*/ 
	getDataExtractionDate():Date;
		
	/**
		* @private
		*/
	setDescribedBy(describedBy:dfd.DataflowDefinition);
		
	/**
		* Associates a data flow definition and thereby a Key Family to the 
		* data set.
		*/ 
	getDescribedBy():dfd.DataflowDefinition;
}